using System.Collections.Generic;
using System.Runtime.CompilerServices;
using ns28;
using Triton.Game.Mapping;

namespace Triton.Game.Abstraction
{
	public class Player : Entity
	{
		[CompilerGenerated]
		private Triton.Game.Mapping.Player player_0;

		[CompilerGenerated]
		private List<Card> list_1;

		[CompilerGenerated]
		private List<Card> list_2;

		[CompilerGenerated]
		private List<Card> list_3;

		[CompilerGenerated]
		private List<Card> list_4;

		[CompilerGenerated]
		private Card card_0;

		[CompilerGenerated]
		private Card card_1;

		[CompilerGenerated]
		private Card card_2;

		[CompilerGenerated]
		private int int_28;

		[CompilerGenerated]
		private int int_29;

		[CompilerGenerated]
		private int int_30;

		[CompilerGenerated]
		private int int_31;

		[CompilerGenerated]
		private int int_32;

		[CompilerGenerated]
		private int int_33;

		internal Triton.Game.Mapping.Player Player_0
		{
			[CompilerGenerated]
			get
			{
				return player_0;
			}
			[CompilerGenerated]
			set
			{
				player_0 = value;
			}
		}

		public List<Card> AllCards
		{
			[CompilerGenerated]
			get
			{
				return list_1;
			}
			[CompilerGenerated]
			private set
			{
				list_1 = value;
			}
		}

		public List<Card> CardsInHand
		{
			[CompilerGenerated]
			get
			{
				return list_2;
			}
			[CompilerGenerated]
			private set
			{
				list_2 = value;
			}
		}

		public List<Card> CardsInBattlefield
		{
			[CompilerGenerated]
			get
			{
				return list_3;
			}
			[CompilerGenerated]
			private set
			{
				list_3 = value;
			}
		}

		public List<Card> CardsInGraveyard
		{
			[CompilerGenerated]
			get
			{
				return list_4;
			}
			[CompilerGenerated]
			private set
			{
				list_4 = value;
			}
		}

		public Card HeroCard
		{
			[CompilerGenerated]
			get
			{
				return card_0;
			}
			[CompilerGenerated]
			private set
			{
				card_0 = value;
			}
		}

		public Card HeroPowerCard
		{
			[CompilerGenerated]
			get
			{
				return card_1;
			}
			[CompilerGenerated]
			private set
			{
				card_1 = value;
			}
		}

		public Card WeaponCard
		{
			[CompilerGenerated]
			get
			{
				return card_2;
			}
			[CompilerGenerated]
			private set
			{
				card_2 = value;
			}
		}

		public new int NumCardsPlayedThisTurn
		{
			[CompilerGenerated]
			get
			{
				return int_28;
			}
			[CompilerGenerated]
			private set
			{
				int_28 = value;
			}
		}

		public new int NumMinionsPlayedThisTurn
		{
			[CompilerGenerated]
			get
			{
				return int_29;
			}
			[CompilerGenerated]
			private set
			{
				int_29 = value;
			}
		}

		public int Resources
		{
			[CompilerGenerated]
			get
			{
				return int_30;
			}
			[CompilerGenerated]
			private set
			{
				int_30 = value;
			}
		}

		public int AvailableResources
		{
			[CompilerGenerated]
			get
			{
				return int_31;
			}
			[CompilerGenerated]
			private set
			{
				int_31 = value;
			}
		}

		public new int OverloadOwed
		{
			[CompilerGenerated]
			get
			{
				return int_32;
			}
			[CompilerGenerated]
			private set
			{
				int_32 = value;
			}
		}

		public new int OverloadLocked
		{
			[CompilerGenerated]
			get
			{
				return int_33;
			}
			[CompilerGenerated]
			private set
			{
				int_33 = value;
			}
		}

		internal Player(Triton.Game.Mapping.Player backingObject)
			: base(backingObject)
		{
			Player_0 = backingObject;
			CardsInHand = new List<Card>();
			foreach (Triton.Game.Mapping.Card card in Player_0.GetHandZone().m_cards)
			{
				CardsInHand.Add(Class278.Class278_0.method_1(card));
			}
			CardsInBattlefield = new List<Card>();
			foreach (Triton.Game.Mapping.Card card2 in Player_0.GetBattlefieldZone().m_cards)
			{
				CardsInBattlefield.Add(Class278.Class278_0.method_1(card2));
			}
			CardsInGraveyard = new List<Card>();
			foreach (Triton.Game.Mapping.Card card3 in Player_0.GetGraveyardZone().m_cards)
			{
				CardsInGraveyard.Add(Class278.Class278_0.method_1(card3));
			}
			NumCardsPlayedThisTurn = Player_0.GetTag(GAME_TAG.NUM_CARDS_PLAYED_THIS_TURN);
			NumMinionsPlayedThisTurn = Player_0.GetTag(GAME_TAG.NUM_MINIONS_PLAYED_THIS_TURN);
			Resources = Player_0.GetTag(GAME_TAG.RESOURCES);
			AvailableResources = Player_0.GetNumAvailableResources();
			OverloadOwed = Player_0.GetTag(GAME_TAG.OVERLOAD_OWED);
			OverloadLocked = Player_0.GetTag(GAME_TAG.OVERLOAD_LOCKED);
			WeaponCard = Class278.Class278_0.method_1(Player_0.GetWeaponCard());
			HeroCard = Class278.Class278_0.method_1(Player_0.GetHeroCard());
			HeroPowerCard = Class278.Class278_0.method_1(Player_0.GetHeroPowerCard());
			AllCards = new List<Card>();
			AllCards.AddRange(CardsInHand);
			AllCards.AddRange(CardsInBattlefield);
			AllCards.AddRange(CardsInGraveyard);
			AllCards.Add(HeroCard);
			AllCards.Add(HeroPowerCard);
		}
	}
}
